Identifying actual touch points using spatial dimension information obtained from light transceivers

ABSTRACT

A system comprises a touch-screen having multiple light transceivers configured to emit and detect light. The system also comprises processing logic coupled to the light transceivers, where the processing logic is configured to obtain spatial dimension information of multiple possible touch points on the touch-screen using the detected light. The processing logic uses the spatial information to predict which of the multiple possible touch points comprise actual touch points and which of the multiple possible touch points comprise phantom touch points.

BACKGROUND

Various types of computers use touch screens to receive input fromend-users. Generally, an end-user uses a finger or other instrument tomake physical contact with the touch screen. The computer coupled to thetouch screen detects the physical contact and reacts accordingly.

In some cases, triangulation techniques may be used to pinpoint theprecise location of a touch on a touch screen. Specifically, a group oflight detectors may be arranged along the perimeter of a touch screen,while a pair of light emitters is arranged in two corners of the touchscreen. The light emitters emit light across the plane of the touchscreen. When a user's finger touches the touch screen, at least part ofthe light emitted from each of the light emitters is obstructed. Theseobstructions of light are detected by the light detectors. Triangulationanalysis may be performed to determine the location at which theobstructed areas intersect. This intersection point is determined to bethe finger's location.

This approach may work well for single-finger touches. However, if auser tries to use multiple fingers on the touch screen, triangulationbecomes difficult. For example, a user may try to use two fingers on thetouch screen. Each finger touch results in two light-obstructed areas(one light-obstructed area per light emitter). Thus, two finger touchesresult in four light-obstructed areas. The four light-obstructed areasintersect with each other at four points. Two of these points representthe locations of the actual fingers on the touch screen. However, theremaining two intersection points are merely “phantom” touch points,since they indicate that fingers are touching the screen at those pointswhen, in reality, they are not. A reliable technique for distinguishingphantom touch points from actual touch points is desirable.

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of exemplary embodiments of the invention,reference will now be made to the accompanying drawings in which:

FIG. 1 shows an illustrative touch-screen desktop computer system, inaccordance with embodiments;

FIG. 2 shows a three-dimensional view of the touch-screen display in thesystem of FIG. 1, in accordance with embodiments;

FIG. 3 shows a cross-sectional view of the display of FIG. 2, inaccordance with embodiments;

FIG. 4 shows another cross-sectional view of the display of FIG. 2, inaccordance with embodiments;

FIG. 5A shows a conceptual illustration of a sensing grid on the displayof FIG. 2, in accordance with embodiments;

FIG. 5B shows a three-dimensional view of the display of FIG. 2 inoperation, in accordance with embodiments;

FIG. 6 shows an illustrative block diagram of a system implementingtechniques disclosed herein, in accordance with embodiments;

FIG. 7 shows a state diagram of an illustrative method disclosed herein,in accordance with embodiments;

FIG. 8A shows an illustrative block diagram of another illustrativesystem implementing techniques disclosed herein, in accordance withembodiments;

FIGS. 8B-8C show actual touch points and/or phantom touch points asdetected by the system of FIG. 8A, in accordance with embodiments;

FIG. 9 shows an illustrative block diagram of a generic computer systemimplementing techniques disclosed herein, in accordance withembodiments; and

FIG. 10 shows a conceptual illustration of software architectureimplemented in the generic computer system of FIG. 9, in accordance withembodiments.

NOTATION AND NOMENCLATURE

Certain terms are used throughout the following description and claimsto refer to particular system components. As one skilled in the art willappreciate, companies may refer to a component by different names. Thisdocument does not intend to distinguish between components that differin name but not function. In the following discussion and in the claims,the terms “including” and “comprising” are used in an open-endedfashion, and thus should be interpreted to mean “including, but notlimited to . . . .” Also, the term “couple” or “couples” is intended tomean either an indirect, direct, optical or wireless electricalconnection. Thus, if a first device couples to a second device, thatconnection may be through a direct electrical connection, through anindirect electrical connection via other devices and connections,through an optical electrical connection, or through a wirelesselectrical connection. The term “adjacent” may mean “next to” or “near.”For example, if component B is located between components A and C,component C may be described as adjacent to both components A and B.

DETAILED DESCRIPTION

The following discussion is directed to various embodiments of theinvention. Although one or more of these embodiments may be preferred,the embodiments disclosed should not be interpreted, or otherwise used,as limiting the scope of the disclosure, including the claims. Inaddition, one skilled in the art will understand that the followingdescription has broad application, and the discussion of any embodimentis meant only to be exemplary of that embodiment, and not intended tointimate that the scope of the disclosure, including the claims, islimited to that embodiment.

Disclosed herein is a technique for distinguishing between phantom touchpoints and actual touch points. After touch points are identified, thetechnique is used to categorize some of the touch points as phantomtouch points and some of the touch points as actual touch points. Thetechnique distinguishes between phantom and actual touch points byanalyzing each touch point using a pre-defined set of criteria. Forexample, the technique may include determining the shape of a particulartouch point and classifying the touch point as a phantom or actual touchpoint based on how closely the shape approximates an ellipse (sincefingers resemble ellipses) or other desired shape. The technique alsomay include determining the size of a touch point and comparing the sizeto a pre-defined, target size that resembles a finger or other object todetermine whether the touch point is more likely to be a phantom oractual touch point.

In some cases, the technique may comprise determining the orientation ofa touch point and comparing the orientation to the orientations of othertouch points. This comparison is done to determine, based on the humantendency to use fingers in a particular manner, whether the touch pointin question is more likely to be a phantom or actual touch point.Likewise, because phantom and actual touch points tend to be arranged inan alternating fashion, a touch point is more likely to be a phantomtouch point if the adjacent touch points are actual touch points, andvice versa. These and other factors may all be taken into considerationwhen determining whether a particular touch point is more likely to be aphantom or actual touch point. One or more of the factors may beweighted, as desired. The methods and systems by which these factors(e.g., size, shape, orientation, etc. of the touch points) aredetermined and evaluated are described below.

FIG. 1 shows an illustrative computer system 100. The computer system100 comprises a display 102 and a chassis 104, which houses variouscomputer components, including processors, memory, video cards, etc. Inat least some embodiments, the display 102 comprises a touch-screendisplay. In some such embodiments, the display 102 is a primary inputdevice such that a keyboard, mouse, etc. are unnecessary. In embodimentswhere the display 102 comprises a touch-screen display, the display 102may be receptive to any type of stimulus, including human touch,styluses, etc. Although the computer system 100 is shown in FIG. 1 as adesktop computer, variations of the computer system 100 may includenotebook computers, personal digital assistants (PDAs), portable musicplayers, mobile phones, televisions, etc. The techniques disclosedherein may be implemented in some or all such devices.

FIG. 2 shows a detailed, three-dimensional view of the display 102 ofFIG. 1. The display 102 comprises multiple layers. Specifically, thedisplay 102 comprises a glass layer 200, a mirror layer 202 adjacent tothe glass layer 200, and a light source/detector layer (LSDL) 204adjacent to the glass layer 200 and the mirror layer 202. Also adjacentto the glass layer 200 is a display surface, such as a liquid crystaldisplay or plasma display (shown in FIGS. 3-4). The glass layer 200,also referred to as a “touch screen,” comprises any suitable type ofglass capable of guiding light (e.g., light from a predetermined lightwavelength band) through the glass layer 200. In at least someembodiments, the glass layer 200 guides light using the technique knownas total internal reflection without undue absorption.

The LSDL 204 comprises a plurality of light sources 212 (e.g., infraredlaser diodes) arranged along one side (e.g., edge) of the LSDL 204 and aplurality of detectors 210 arranged along another side of the LSDL 204.Although the light sources 212 and the detectors 210 may be arranged onany of the sides of the LSDL 204 as desired, in at least someembodiments, the light sources 212 are all disposed on a common side ofthe LSDL 204 and the detectors 210 are all disposed on another commonside of the LSDL 204. Further, in some embodiments, the side(s) of theLSDL 204 comprising the light sources 212 is/are substantiallyorthogonal to the side(s) of the LSDL 204 comprising the detectors 210.The light sources 212 may comprise, for example, infrared light emittingdiodes, infrared laser diodes, etc. The detectors 210 may comprise anysuitable type of light detector, such as complementary metal-oxidesemiconductor (CMOS) sensors.

The mirror layer 202, which abuts or at least is adjacent to the glasslayer 200 and the LSDL 204, comprises a plurality of mirror pairs 214.In some embodiments, the total number of mirror pairs 214 matches thetotal number of detectors 210 and light sources 212, with one mirrorpair for each detector 210 or light source 212. The mirror pairs 214 maybe arranged as necessary in the mirror layer 202 to achieve properintroduction of light into, and the proper extraction of light out of,the glass layer 200. However, in at least some embodiments, each mirrorpair 214 is disposed directly above (e.g., closer to the glass layer200) a detector 210 or light source 212. In some embodiments, a singlepair of substantially cylindrical mirrors may be used to facilitatelight extraction from, or the introduction of light into, the glasslayer 200 for multiple detectors or light sources along a single side ofthe display 102. Stated in another way, in such embodiments, a singlepair of cylindrical mirrors may span the length of mirror layer 202,thereby servicing some or all of the light sources 212. Similarly,another pair of cylindrical mirrors may span the width of the mirrorlayer 202, thereby servicing some or all of the detectors 210. In somesuch embodiments, baffling may be disposed between mirrors in a singlepair to mitigate light stray.

Because the display 102 comprises a touch-screen, and further becausethe detectors 210, light sources 212 and mirror pairs 214 are used todetect touches (e.g., human fingers, styluses) as described below,spacing between each of the detectors, each of the light sources andeach of the mirror pairs may be roughly equivalent to a width and/orlength of the average human fingertip (e.g., a minimum of between 0.01mm⁻¹⁰ mm). In other embodiments, the spacing between each of thedetectors, between each of the light sources and/or between each of themirrors may be roughly equivalent to a width of a stylus tip (e.g., aminimum of between 0.25-2 mm) that is manufactured for use with thedisplay 102. Other widths also may be used.

The detectors 210 and light sources 212 couple to circuit logic withinthe chassis 104 as shown in FIG. 6 and as described further below. Thecircuit logic in the chassis 104 powers the detectors 210 and lightsources 212. The circuit logic also controls the light sources 212(e.g., switches the light sources on/off) and the detectors 210 (e.g.,switches the detectors on/off and receives data from the detectors). Insome embodiments, the circuit logic is housed in the display 102 insteadof in the chassis 104.

In operation, the light sources 212 emit light, such as infrared laserlight. This light is reflected by the mirror pairs 214 and is providedto the glass layer 200. Light waveforms travel within the glass layer200 as described below. When a user of the computer system 100 touchesthe display 102 (e.g., using a finger, stylus or other suitableapparatus), the waveforms within the glass layer 200 are disturbed atthe point of contact between the glass layer 200 and the finger orstylus. Because light within the glass layer 200 uses total internalreflection, contact with the glass layer 200—or even proximity with theglass layer 200—causes a disturbance in the light patterns within theglass layer 200. Such disturbance is referred to as “frustrated totalinternal reflection.” One of the detectors 210 detects this disturbanceand reports it to the circuit logic in the chassis 104 via anotification signal. By determining which light source and whichdetector correspond to the disturbance, the circuit logic may determinethe precise location of the touch on the glass layer 200. The circuitlogic then supplies this location information to software applicationsas desired. This detection technique is now further elucidated.

The dashed line 206 in FIG. 2 corresponds to the cross-sectional view ofthe display 102 shown in FIG. 3. In addition to showing the componentsof FIG. 2, FIG. 3 shows the aforementioned display surface 304. In atleast some embodiments, the glass layer 200 comprises a coating on itssurface between the glass layer 200 and the display surface so that thetotal internal reflection within the glass layer 200 described above isnot disturbed, or “frustrated,” solely due to proximity with the displaysurface. The coating may comprise any appropriate, transparent materialthat has an index of refraction differing from that of the glass layer200 such that the proximity of the glass layer 200 to the displaysurface does not frustrate the total internal reflection capability ofthe glass layer 200.

As shown, in operation, the light source 212 emits light toward themirror layer 202. The mirror layer 202 comprises a mirror pair 214 thatis aligned with the light source 212. The mirror pair 214 comprises twocomponents—a mirror 214 a and another mirror 214 b. In at least someembodiments, these mirror components are curved. Multiple mirrorcomponents facilitate the spread of light throughout the glass layer200. In particular, the light beam emitted from the light source 212first strikes the mirror 214 a, which reflects the light beam toward themirror 214 b. In turn, the mirror 214 b reflects the light beam into theglass layer 200. The mirrors 214 a and 214 b are angled relative to eachother so that, when the mirror 214 b reflects the light beam, the lightbeam is introduced into the glass layer 200 at a range of angles, eachof which is less than the critical angle required for total internalreflection to occur. This range of angles is sufficiently broad so as tosaturate (i.e., prevents gaps within) the light waveform in the glasslayer 200. Specifically, waveforms 300 and 302 are introduced into theglass layer 200. Waveform 300 is representative of light introduced atthe critical angle required for total internal reflection. Waveform 302is representative of light introduced within the desired angular rangeless than the aforementioned critical angle. The waveform 302 isintroduced to saturate, or “fill in,” any gaps not covered by thewaveform 300. All together, the light entering at angles between thoseof waveforms 300 and 302 saturate at least a portion of the glass layer200 with light. In some embodiments, light emitted by a single lightsource 212 does not saturate the entire glass layer 200, but insteadsaturates only a portion of the glass layer 200, as shown in FIG. 5B anddescribed below.

The dashed line 208 in FIG. 2 corresponds to the cross-sectional view ofthe display 102 shown in FIG. 4. Disturbance of light caused by a touchon the glass layer 200 is shown as the illustrative light beam 401. Themirror layer 202 comprises a mirror pair 214. The mirror pair 214 ofFIG. 4 comprises mirror components 400 a and 400 b. Mirror 400 breceives the illustrative light beam 401 and reflects it to mirror 400a. In turn, mirror 400 a provides the illustrative light beam 401 to thedetector 210. In turn, the detector 210 captures the illustrative lightbeam and provides data pertaining to the captured light beam to circuitlogic in the display 102 and/or chassis 104.

FIG. 5A shows a conceptual “detection grid” that is formed in thedisplay 102 by the arrangement of the light sources 212 and thedetectors 210 as shown in FIG. 2. The illustration of FIG. 5A is atop-down view. Each of the horizontal lines in the conceptual gridrepresents a discrete light beam that may be emitted by a light source212. Collectively, these light beams are referred to as an array oflight beams 500. For ease of reference and discussion, the light beamsare assigned reference numerals 1-24. Each of the vertical lines in theconceptual grid represents a discrete detection path. Light disturbed bya finger or stylus travels along the detection path to a detector 210.Collectively, these detector paths are referred to as an array ofdetector paths 502. For ease of reference and discussion, the detectorpaths are assigned reference numerals 25-58.

Referring simultaneously to FIGS. 2 and 5A, in operation, the computersystem 100 causes each of the light sources 212 to fire (i.e., emitlight and then cease to emit light) in turn. Thus, for example, a lightsource 212 that corresponds to light beam 1 would fire first, followedby the light source that corresponds to light beam 2, followed by thelight source that corresponds to light beam 3, etc. In this way, each ofthe light sources 212 would fire in turn, so that after the light source212 associated with light beam 24 fires, the light source 212 thatcorresponds to light beam 1 would fire again. Stated in another way, thelight sources 212 fire in a “round-robin” fashion. The firing period(i.e., the length of time during which a light source emits light) maybe any suitable length of time (e.g., approximately less than 1picosecond-1 millisecond). The delay period (i.e., the length of timebetween the time a light source ceases emitting light and the time thenext light source begins emitting light) also may be of any suitablelength (e.g., approximately less than 1 picosecond-1 millisecond). Otherspeeds also may be used.

Each time a light source is fired, circuit logic that controls thedetectors 210 activates each of the detectors 210 in a “round-robin”fashion. For example, while the light source 212 of light beam 1 isfired, each of the detectors 210 is activated and de-activated, so thateach path 25-58 is scanned for any light disturbances caused by adisplay touch. After all detectors paths have been scanned, the lightsource 212 of light beam 1 ceases firing and, instead, the light source212 of light beam 2 fires. While the light source 212 of light beam 2fires, each of the detectors paths 25-58 is again scanned in around-robin fashion to detect any light disturbances caused by a displaytouch. This process is continued indefinitely. When a light disturbanceis detected by a detector 210, the detector 210 sends a signal to itscontrol logic, notifying the control logic of a possible touch. Thedetection period (i.e., the length of time during which a detector isactivated) may be any suitable length of time (e.g., approximately lessthan 1 nanosecond-1 second). The detection delay period (i.e., thelength of time between the time a detector is shut off and the time thenext detector is activated) also may be of any suitable length (e.g.,approximately less than 1 picosecond-1 millisecond). Other speeds alsomay be used. In this way, the light sources 212 and detectors 210 worktogether to repeatedly “scan” the display 102 for touches. In at leastsome embodiments, the time needed to “scan” the entire grid shown inFIG. 5A (e.g., less than 1 picosecond-1 second) is less than the minimumamount of time a finger or stylus might spend in contact with or nearthe glass layer 200 of the display 102 during a touch.

Still referring to FIG. 5A, an illustrative touch point 504 is shown.The touch point 504 is indicative of a location on the display 102 wherea finger, stylus, or other apparatus may have been used whileinteracting with a graphical user interface (GUI) being displayed on thedisplay 102 (e.g., in association with a software application). Inoperation, after scanning each of the detector paths 25-58 (usingdetectors 210) during each fire of light sources associated with lightbeams 1-8, no light disturbances may have been detected. However, whenthe light source 212 associated with light beam 9 is fired, the touchimpressed upon the display 102 at touch point 504 causes the light to bedisturbed. When the detector 210 associated with the detector path 38detects the disturbed light, the detector 210 sends a notificationsignal to its circuit logic. In turn, the circuit logic determines 1)which detector 210 and 2) which light source 212 were activated at thetime of detection. The circuit logic then determines the intersectionpoint on the grid that corresponds to the detection path of thatdetector and the light beam of that light source. This intersectionpoint is determined to be the touch point. The circuit logic forwardsthe intersection point to processing logic, software application(s),etc. as necessary.

FIG. 5B illustrates the detection process described above. Light source212 uses mirrors 214 a-b to emit the light beam 9 of FIG. 5A, as shown.A finger 506 touches the display 102 at touch point 504. The fingertouch causes light from the beam 9 to be disturbed, or “leaked,” shownas disturbed light 508. Using mirrors 214 c-d, the detector 210(corresponding to detection path 38 of FIG. 5A) detects the disturbedlight 508. The detector 210 then generates and sends notificationsignal(s) as described above. Multiple (e.g., simultaneous) touches alsomay be detected using the above techniques.

FIG. 6 shows the display 102 comprising the light sources 212 anddetectors 210. The light sources 212 and detectors 210 couple to displaycontrol logic 602. The display control logic 602 controls the lightsources 212 and detectors 210 as described above. The display controllogic 602 may couple to storage 600, which comprises one or moreapplications 606. The application(s) 606, when executed, cause thedisplay control logic 602 to perform at least some of the functionsdescribed above and may include a background subtraction and/or acalibration. The display control logic 602 may be housed within thecomputer system chassis 104 or within the display 102. The displaycontrol logic 602 couples to processing logic 604. The processing logic604 handles many of the processing functions of the computer system 100,such as executing operating systems, software applications, etc. Theprocessing logic 604 may execute one or more applications 608 stored onthe storage 610 and provide the application(s) with detected touchinformation. Touch data received from detectors 210 may be processed bythe display control logic 602. In some cases, multiple touches may bereceived.

To ensure that multiple touches are properly interpreted, an application606 analyzes the timing associated with the touches (e.g., betweentouches). Although the technique is described herein as being encodedonto the application 606 and executed by the display control logic 602,an application 608 and processing logic 604 also may be used. In someembodiments, other, similar applications and/or processing logic may beused. The technique is now described in detail.

FIG. 7 shows a state diagram of an illustrative method 700 implementedin accordance with embodiments. Referring to FIGS. 6 and 7, the method700 begins by awaiting input (block 702) in an “awaiting input state.”For example, the display control logic 602 may be in an idle or waitingstate. If the display control logic 602 detects a single touch on thedisplay 102 (arrow 704), the display control logic 602 records the timeand position of the touch (e.g., in a register in storage 600). Thedisplay control logic 602 is now in an “awaiting confirmation state”(block 706). Stated in another way, the display control logic 602 hasdetected a touch and is now waiting to determine whether another touchis to be received. While the display control logic 602 is waiting, itmay use an internal counter (not specifically shown) or other mechanismto determine the amount of time that has elapsed since the touch wasdetected at arrow 704. If the amount of time exceeds a predeterminedthreshold (e.g., preprogrammed into the application 606; arrow 708), orif another touch is detected in a location that exceeds a predetermineddistance threshold from the original touch location (e.g., preprogrammedinto the application 606; arrow 708), the display control logic 602confirms that one and only one touch has been received (block 710).Stated in another way, the display control logic 602 enters a “oneconfirmed state” (block 710) and the position of the touch is recorded.When all touch devices have been removed from the display 102 (arrow712), the display control logic 602 returns to an “awaiting input state”(block 702).

The predetermined time threshold described above is chosen to allowsufficient leeway for two touches to be detected as simultaneous touchesdespite the touches having been received at different times. Thissituation arises when the touches are detected at separate times or whenthe touches are detected at the same time but then are moved apart(e.g., by spreading the fingers).

If, while in the “one confirmed state,” the display control logic 602detects a second touch, the display control logic 602 may identify whichof the two touches is closest to the original touch that was confirmedin the “one confirmed state.” The display control logic 602 maydesignate this identified touch as the original touch. However, thedisplay control logic 602 generally will not transition directly fromconfirming one touch to confirming two touches.

If, while in the “awaiting confirmation state” (block 706), the displaycontrol logic 602 detects a second touch (arrow 714), the displaycontrol logic 602 enters a “two confirmed state” (block 716), in whichtwo touches are confirmed and the positions of the touches are recorded.The second touch (arrow 714) must be received within the threshold timeframe previously mentioned. The second touch (arrow 714) also must belocated in a position that is outside the position threshold previouslymentioned. Otherwise, arrow 708 is followed to the “one confirmed state”(block 710).

Another path may be followed to the “two confirmed state” (block 716).If, while in the “awaiting input state” (block 702), the display controllogic 602 detects two simultaneous touches (arrow 718), the displaycontrol logic 602 enters the “two confirmed state” (block 716). If,while in the “two confirmed state” (block 716), the display controllogic 602 determines that all touch devices have been removed from thedisplay 102 (arrow 720), the display control logic 602 returns to the“awaiting input state” (block 702).

While in the “two confirmed state” 716, one of the touches may beremoved from the touch screen while the other touch remains. In thatcase, the display control logic 602 continues to recognize two touches.The display control logic 602 approximates the location of thenow-missing touch using vectors. Specifically, the missing touchposition will be approximated at the end point of a vector whose origincorresponds to the touch that is still present on the touch screen. Thevector maintains the same angle and length as a second vector that isderived from the individual positions of the last two (or more) recordedtouch positions. In particular, the origin of the second vector ischosen to be that individual position of the last two (or more) recordedpositions that is closest to the received, singular touch position.

The steps of method 700 may be adapted to detect more than two touches.The threshold time frame and position threshold described above are bothuser-adjustable. All such variations are included within the scope ofthis disclosure.

FIG. 8A shows another system 800 in which method 700 may be implemented.The system 800 comprises processing logic 802, storage 804 that includesapplications 806-807, display control logic 808, display 810,touch-screen 812, light transceivers 814 and 816 and storage 818 thatincludes applications 820 and 822. The touch-screen 812 comprisesretro-reflective tape 830, described below, along its edges. Thetechnique of method 700 may be encoded onto software, such asapplication 806, and executed by the processing logic 802.Alternatively, the technique of method 700 may be encoded onto software,such as application 820, and executed by the display control logic 808.Unlike the system 100, which uses a grid of light sources and detectorsto detect touches, the system 800 comprises a plurality of lighttransceivers 814 and 816 that both transmit light and detectobstructions present on the touch-screen 812.

FIG. 8B shows the system 800 in operation. Assume a user uses a fingerto touch the touch-screen 812 at touch point 824. The display controllogic 808 causes the light transceiver 814 to emit light (e.g., infraredlight) across the touch-screen 812. The retro-reflective tape 830 (e.g.,material that comprises a plurality of miniature, mirrored, cornercubes) is disposed along the edges of the touch-screen 812. Theretro-reflective tape 830 causes light emitted from the lighttransceiver 814 to return, or “bounce back,” in substantially the samedirection (e.g., at substantially the same angle) in which the lightarrived at the retro-reflective tape 830. The infrared light may beemitted on either side of the touch-screen 812, as long as a finger orother obstruction is able to obstruct light as described below. Thelight transceiver 816 operates in a similar manner.

As shown, a touch established at a touch point 824 obstructs lightemitted by the light transceivers 814 and 816. Thus, light emitted bythe light transceiver 814 strikes the retro-reflective tape 830 andreturns to the light transceiver 814, except for light that is blockedby the touch at touch point 824. Similarly, light emitted by the lighttransceiver 816 strikes the retro-reflective tape 830 and returns to thelight transceiver 816, except for light that is blocked by the touch attouch point 824. In this way, each of the light transceivers 814 and 816determines a path in which an obstruction—such as a finger—lies. Atriangulation technique may be used to determine the intersection point832 of the obstruction paths 834 and 836 determined by the transceivers814 and 816, thereby identifying the precise location of the obstruction(or touch) at touch point 824.

FIG. 8C again illustrates the touch-screen 812, except the touch-screen812 in FIG. 8C has two touch points 824 and 826. The aforementionedtriangulation technique performed by the light transceivers 814 and 816identifies the touch points 824 and 826. However, unlike thetouch-screen shown in FIG. 8B, the touch-screen of FIG. 8C has multipletouch points. As a result, the light transceivers 814 and 816 identifynot only the two actual touch points 824 and 826, but they also identifytwo additional intersection points—called phantom touch points 828—whichappear to be actual touch points but, in reality, are not actual touchpoints. It is desirable to distinguish between actual touch points andphantom touch points, because only actual touch points should be used.The system 800 distinguishes between actual touch points and phantomtouch points as now described.

When executed by the display control logic 808, the application 822causes the display control logic 808 to perform the triangulationtechnique mentioned above using the light transceivers 814 and 816. Whenperforming the triangulation technique, the display control logic 808uses the angles of obstruction 846, 848, 850 and 852 that correspond toobstruction paths 838, 840, 842 and 844, respectively, to predictproperties of each of the multiple touch points 824, 826 and 828. Thedisplay control logic 808 also uses the orientations of the obstructionpaths 838, 840, 842 and 844 in relation to the touch screen 812 topredict properties of each of the multiple touch points 824, 826 and828. Further, the display control logic 808 may maintain additionalinformation pertaining to the light transceivers 814 and 816corresponding to their locations in relation to the touch screen 812.

Using some or all information collected by the light transceivers 814and 816, the display control logic 808 determines spatial propertiesassociated with the touch points 824, 826 and 828. Such propertiesinclude the touch points' probable size, shape, orientation, etc. Thedisplay control logic 808 then may compare the different spatialproperties of the touch points 824, 828 and 828 to determine which ofthe touch points 824, 826 and 828 are most likely to be the actual touchpoints and which are most likely to be the phantom touch points. Thedisplay control logic 808 may perform such comparison by weighting someor all of the spatial properties, using preprogrammed formulas, etc. asdesired. Determination of each of the aforementioned spatial propertiesis now described.

The display control logic 808 may determine the shape of a touch pointusing the obstruction path angle associated with that touch point inconjunction with the location of the touch point (i.e., usingtriangulation). For example, because touch points are assumed to beellipsoid (e.g., because fingers and fingertips tend to resembleellipses), the display control logic 808 may use optical information,such as the widths of the touch points, from the light transceivers 814and 816 to determine lengths of the major and minor axes associated withthe touch point. Specifically, after the display control logic 808 hasused the light transceivers 814 and 816 to determine the location of thetouch point whose shape is to be determined, the display control logic808 uses the obstruction angles corresponding to the touch point, aswell as the distance of the touch point from the light transceivers 814and 816, to determine the length of a major axis of the touch point(i.e., using basic trigonometric techniques). A similar technique may beused to determine the length of a minor axis of the touch point. Thedisplay control logic 808 then may determine the difference between thelengths of the major and minor axes and divide by the absolute value ofthe difference to determine the eccentricity of the ellipsoid touchpoints. The greater the eccentricity, the more ellipsoid the touch pointis. Other, similar techniques may be used to determine shape informationof touch points using some or all data gathered by the lighttransceivers 814 and 816. For example, referring to FIG. 8C, if theshape of the touch point 824 is to be determined, approximations toinscribing an ellipse within the diamond-shaped obstruction 825 may bemade.

In some embodiments, the display control logic 808 may be programmed toassume that, of four possible touch points, the two actual touch pointsand the two phantom touch points will be arranged in an alternatingfashion. This assumption is based on the fact that actual and phantomtouch points generally tend to be arranged in such an alternatingfashion. Thus, for example, referring to FIG. 8C, the touch points areshown in an alternating fashion—the actual touch point 824, followed byone of the phantom touch points 828, followed by the actual touch point826, followed by another phantom touch point 828. Thus, if the displaycontrol logic 808 accurately determines the identity of just one of thepossible touch points (i.e., whether the touch point is an actual touchpoint or a phantom touch point) using any of the techniques describedherein, the display control logic 808 may automatically determine theidentities of the remaining touch points, since the touch pointsalternate between actual touch points and phantom touch points. In somesuch cases, the identity of just one of the possible touch points isimmediately, and accurately, determined if the possible touch point islocated off of the touch screen 812. A possible touch point that isdetermined to be off of the touch screen 812 is a phantom touch point,thereby establishing the identities of the remaining possible touchpoints.

The display control logic 808 may determine the size of a touch pointusing obstruction path orientations and angles as well as the locationinformation of the light transceivers 814 and 816. As previouslymentioned, the display control logic 808 may determine the lengths ofthe major and minor axes of each of the possible touch points. Thedisplay control logic 808 may use these lengths to determine the size(i.e., area) associated with each of the possible touch points. Todetermine the area of a possible touch point, the display control logic808 multiplies the product of the major and minor axes by pi. Afterdetermining the areas of each of each of the possible touch points, thedisplay control logic 808 may determine the average size of all of thepossible touch points. The display control logic 808 then may comparethe size of each possible touch point, or sizes of pairs of possibletouch points, to the average size of all of the possible touch points todetermine which of the touch points are most likely to be the actualtouch points and which are most likely to be phantom touch points. Insome embodiments, touch points having sizes that closely approximate theaverage touch point size are more likely to be actual touch points thanare touch points whose sizes do not closely approximate the averagetouch point size. Other, similar techniques also may be used.

The display control logic 808 may determine the orientation of a touchpoint based on information collected using the light transceivers 814and 816. Specifically, for each possible touch point, the displaycontrol logic 808 determines the obstruction angles associated with thattouch point as well as the position of that touch point in relation tothe light transceivers 814 and 816. Using this information, the displaycontrol logic 808 predicts whether that possible touch point ishorizontally or vertically oriented. Assume that the obstruction anglemeasured by one of the light transceivers (e.g., light transceiver 814)is larger than the obstruction angle measured by the other lighttransceiver (e.g., light transceiver 816). In such a case, if thedisplay control logic 808 determines that that possible touch point islocated closer to the light transceiver 814 than to the lighttransceiver 816, then—geometrically speaking—the possible touch point ismore likely to be horizontally oriented than it is to be verticallyoriented. However, if the possible touch point is located closer to thelight transceiver 816 than to the light transceiver 814, then thepossible touch point is more likely to be vertically oriented than it isto be horizontally oriented. Similarly, assume the obstruction anglemeasured by the light transceiver 816 is larger than that measured bylight transceiver 814. If the possible touch point is located closer tothe light transceiver 816 than to the light transceiver 814, the touchpoint is more likely to be horizontally oriented. Otherwise, the touchpoint is more likely to be vertically oriented. In general, if theorientation of a possible touch point does not match the orientations ofother possible touch points, that possible touch point is likely to be aphantom touch point.

In performing the above determinations, the display control logic 808may give more or less weight to different factors. For example, thedisplay control logic 808 may give extra weight to determinations maderegarding touch point shapes and may give less weight to determinationsmade regarding touch point orientation. Touch point predictions may beweighted as desired. In some embodiments, after weighting, thepredictions may be combined to generate a cumulative value, orprediction, which then indicates which touch points—having taken some orall available information into consideration—are most likely to beactual touch points and which are most likely to be phantom touchpoints. In some embodiments, the factors described above may be assignednumerical values based on pre-programmed schemes and, after beingweighted, may be used in one or more pre-programmed formulas todetermine (or predict) which of the possible touches are actual touchesand which are phantom touches. In some embodiments, weighting is notperformed. Any and all variations on these techniques are encompassedwithin the scope of this disclosure.

The obstruction path angle information described above is collected by alight transceiver and provided to the display control logic 808 usingsignals. The display control logic 808 may monitor such signals forchanges (e.g., dips) that are indicative of obstruction paths. Thedisplay control logic 808 may analyze such changes (e.g., dip width) todetermine the angle associated with an identified obstruction path.Other information, such as touch point angle, also may be determinedusing such signal changes. Having obtained information in this manner,the display control logic 808 may use the factors described above topredict which of the possible touch points are actual touch points andwhich are phantom touch points. Having predicted which are the actualtouch points, the display control logic 808 may forward such predictionsto any applicable software that may be running at that time.

In some cases, the two actual touches may not be introduced to thetouch-screen 812 at the same time. Stated in another way, one of thetouches may be introduced, followed by the second touch at a later time.The system 800 is adapted to distinguish between single touches,multiple touches in series, and multiple simultaneous touches. Morespecifically, the application 822 is programmed so that when the displaycontrol logic 808 detects a first touch on the touch-screen 812, thedisplay control logic 808 waits for a predetermined (e.g.,user-specified) length of time before processing the first touch as amouse-down event. Waiting for this delay time allows for theintroduction of a second touch.

This delay may be aborted if the first touch is lifted off of thetouch-screen 812. In such a case, the display control logic 808processes the first touch as a click event. Alternatively, this delaymay be aborted if the first touch is moved a predetermined distance fromthe original location of the first touch, because such a move indicatesthat the user intends to “drag” an object on the graphical userinterface (GUI) of the touch-screen 812. In such a case, the displaycontrol logic 808 processes the first touch and drag as a drag event.Further, this delay may be aborted if a second touch is detected on thetouch-screen 812. If the delay time expires before a second touch isdetected, only a first touch event is processed, and no other touchesare processed until all touches are released from the touch-screen 812.Similarly, if a second touch is detected during the delay, the delaythen expires and only double touch events are processed until alltouches have been lifted off of the touch-screen 812. Other such touchrules may be programmed into the application 822 as desired.

Although the above techniques are generally described as having beenperformed by the display control logic 808, in some embodiments, theabove techniques may be performed by the processing logic 802 whileexecuting the application 807.

Regardless of the type of computer system used (e.g., system 100, system800 or another system implementing the techniques disclosed herein),touch data collected using the display and the display control logic issubsequently provided to the appropriate application(s) that are beingexecuted. For example, a user of the computer system might see a GUI onthe display. The GUI is generated using an application. The userinteracts with the GUI by touching the display. The display controllogic collects this touch information and provides it to the applicationthat was used to generate the GUI with which the user was interacting.

FIG. 9 shows a generic computer system 1000 (e.g., illustrative ofsystems 100 and/or 800) comprising software architecture that collectsand routes touch data appropriately. The computer system 1000 comprisesa touch-screen display 1002, processing logic 1004, storage 1006 andother circuit logic 1008 (e.g., video cards, buses). The storage 1006comprises a system service application (“SS”) 1010 and an administrationapplication (“AA”) 1012. The storage 1006 also comprises one or moregeneric user applications 1014 and a standardized driver stack (“SDD”)1016. The SS 1010 may be defined as a program that operates to acceptinput from hardware and to provide that input to the operating systemand/or an administration application (AA). The AA 1012 may be defined asa program that accepts input from the system service application andprovides that input to the operating system and/or cooperatingapplications on a per user basis. The SDD 1016 may be defined as a setof programs intended to interpret input from cooperating hardware and topresent it to applications in a uniform manner independent ofimplementation. The applications 1014 include an operating system (“OS”)1018, such as the WINDOWS® VISTA® OS. When software stored on thestorage 1006 is described herein as performing an action, it isunderstood that the processing logic 1004 actually performs that actionas a result of executing the software.

The SS 1010 is initiated upon boot-up of the OS 1018. The SS 1010receives information from and transfers information to the display 1002via the SDD 1016. When no user is logged in to the system 1000, the SS1010 configures the display 1002 accordingly (e.g., with a log-inscreen). As each of a plurality of users logs in, a separate instance ofthe AA 1012 is initiated and executed by the processing logic 1004. Whenthe SS 1010 receives touch data from the display 1002, the SS 1010routes the touch data to the instance of the AA 1012 that corresponds tothe user who is currently logged in and currently active. The touch datais transferred using any suitable/appropriate methods of interprocesscommunication. In turn, the AA 1012 instance that receives the touchdata analyzes the touch data to determine how the touch data should befurther routed. In some embodiments, if the AA 1012 determines that thetouch data includes only a single touch, the AA 1012 provides the singletouch to the OS 1018 for default, or “normal,” processing. However, insome embodiments, if the AA 1012 determines that the touch data includesmultiple touches, the AA 1012 provides the touch data to applications1014 presently running that may make use of multiple touch data forpurposes such as expand, contract, grab and drag operations. Manyvariations on this type of routing are possible. All such variations areincluded within the scope of this disclosure.

The SS 1010 determines to which instance of the AA 1012 touch datashould be routed based on user context information received from theinstances of the AA 1012. The user context information provided by eachinstance of the AA 1012 indicates a status of the user associated withthat instance. For example, the user context information may indicatethat a user is currently logged in; that the user is currently logged inbut inactive; that the user is currently logged in and active; that ascreen saver is running, etc. User context information may be programmedto include any such information, as desired.

As previously explained, the user context information may be used toroute received touch data to the proper instance of the AA 1012 (e.g.,the instance corresponding to a logged-in and active user). However, theuser context information also facilitates data transfer in the oppositedirection. Specifically, the SS 1010 may use the user contextinformation to configure the touch screen display 1002 in accordancewith user preferences. For instance, if a particular instance of the AA1012 corresponds to a currently logged-in, active user, the SS 1010 willconfigure the touch screen display 1002 in accordance with that user'spreferences. Each user's preferences may be stored on storage 1006—inthe form of a database, for example.

FIG. 10 shows a conceptual illustration 1020 of the softwarearchitecture described above. As shown, the display hardware 1002 (whichincludes display control logic) communicates with the SDD 1016. In turn,the SDD 1016 communicates with the SS 1010. When the SS 1010 receivestouch data from the display hardware 1002 via the SDD 1016, the SS 1010routes the touch data to one of the (potentially) multiple instances ofthe AA 1012 that may be running on the system 1000. The AA 1012 instanceto which the touch data is routed depends on user context informationreceived from the instance(s) of the AA 1012 (e.g., depending on whichuser is logged in and currently active on the system 1000 at the time).For example, if a user is presently active, the SS 1010 routes the touchdata to that instance of the AA 1012. Each of the multiple instances ofthe AA 1012 may communicate with one or more applications 1014, asshown. Thus, an instance of the AA 1012 that receives touch data mayroute the touch data to one of the applications 1014 that is currentlyin use (e.g., the “active” or “topmost” application). In someembodiments, the instance of the AA 1012 that receives the touch dataroutes the touch data to an OS 1018, which is one of the applications1014. Data is generally routed from the AA 1012 instance to the OS 1018when the touch data includes only a single touch. If the touch dataincludes a double touch, the instance of the AA 1012 provides the touchdata to appropriate application(s) 1014 that may use multiple touch data(e.g., for window expansion or contraction, drag events). However,various such routes are possible and are included within the scope ofthis disclosure.

As previously explained, the SS 1010 may use the SDD 1016 to configureparameters on the display 1002 in accordance with whichever instance ofthe AA 1012 that may be running at the time. The SS 1010 may furtherconfigure parameters on the display 1002 in accordance with whicheverapplications 1014 that may be running at the time (in association withthe particular instance of the AA 1012 that is running at the time).

The above discussion is meant to be illustrative of the principles andvarious embodiments of the present invention. Numerous variations andmodifications will become apparent to those skilled in the art once theabove disclosure is fully appreciated. It is intended that the followingclaims be interpreted to embrace all such variations and modifications.

1. A system, comprising: a touch-screen having multiple lighttransceivers configured to emit and detect light; and processing logiccoupled to the light transceivers, the processing logic configured toobtain spatial dimension information of multiple possible touch pointson said touch-screen using said detected light; wherein the processinglogic uses the spatial information to predict which of the multiplepossible touch points comprise actual touch points and which of themultiple possible touch points comprise phantom touch points.
 2. Thesystem of claim 1, wherein the spatial information includes position,size, shape and orientation information.
 3. The system of claim 2,wherein the processing logic determines shapes of the possible touchpoints by determining long axis and short axis dimensions associatedwith said touch points.
 4. The system of claim 2, wherein the processinglogic compares the size of one pair of said multiple possible touchpoints to an average size of all of said multiple possible touch points,and, if said size of the one pair of said multiple possible touch pointsis more similar to the average size than are sizes of the other pair ofpossible touch points, the processing logic selects said one pair ofsaid multiple possible touch points as actual touch points.
 5. Thesystem of claim 1, wherein the actual touch points cause light to beobstructed from reaching the light transceivers, and wherein theprocessing logic uses obstruction angles and position informationassociated with said actual touch points to determine said spatialinformation.
 6. The system of claim 5, wherein the processing logic usessaid obstruction angles to determine position, size, shape andorientation information associated with said possible touch points. 7.The system of claim 5, wherein the processing logic determinesobstruction areas of said multiple possible touch points usingtriangulation techniques, and wherein the processing logic comparesobstruction areas of one pair of said multiple possible touch points toan average obstruction area of all of said multiple possible touchpoints, and, if said obstruction area of the one pair of said multiplepossible touch points is more similar to the average obstruction areathan are obstruction areas of the other possible touch pair, theprocessing logic selects said one pair of said multiple possible touchpoints as actual touch points.
 8. The system of claim 1, wherein theprocessing logic determines an eccentricity of said touch points.
 9. Thesystem of claim 1, wherein the system comprises a system selected fromthe group consisting of a display, a television, a desktop computer, anotebook computer, a portable music player, a mobile communicationdevice and a personal digital assistant.
 10. The system of claim 1,wherein the processing logic determines at least some of said spatialinformation by measuring changes in signals received from the lighttransceivers.
 11. The system of claim 1, wherein, after the processinglogic detects a single, actual touch point, the processing logic delaysfor a predetermined length of time prior to confirming said actual touchpoint as a touch event to allow for additional touches on thetouch-screen.
 12. The system of claim 11, wherein the processing logicaborts said delay as a result of said actual touch point being lifted.13. The system of claim 11, wherein the processing logic aborts saiddelay as a result of the actual touch point being moved outside of apredetermined distance from an original location of the actual touchpoint.
 14. The system of claim 11, wherein the processing logic abortssaid delay as a result of the processing logic detecting another actualtouch point.
 15. A method, comprising: emitting and detecting light;using said detected light, obtaining spatial dimension information ofmultiple possible touch points on said touch-screen; and using saidspatial dimension information, determining which of the multiplepossible touch points comprise actual touch points and which of themultiple possible touch points comprise phantom touch points.
 16. Themethod of claim 15, wherein obtaining spatial dimension informationcomprises obtaining information selected from the group consisting ofposition, shape, size and orientation information.
 17. The method ofclaim 15, wherein obtaining spatial information comprises using locationinformation associated with at least one of said possible touch pointsand obstruction angle information associated with the at least one ofsaid possible touch points to determine an orientation of the at leastone of said possible touch points.
 18. A system, comprising: means foremitting and detecting light; and means for obtaining spatial dimensioninformation of multiple possible touch points on said touch-screen usingsaid detected light; wherein said means for obtaining is also for usingthe spatial dimension information for determining which of the multiplepossible touch points comprise actual touch points and which of themultiple possible touch points comprise phantom touch points.
 19. Thesystem of claim 18, wherein the means for obtaining spatial dimensioninformation obtains information selected from the group consisting ofposition, shape, size and orientation information.
 20. The system ofclaim 18, wherein, if said means for determining identifies one of saidmultiple possible touch points as either an actual touch point or aphantom touch point, then, as a result, the means for determiningidentifies each of the remaining possible touch points as either actualtouch points or phantom touch points by assuming that the multiplepossible touch points comprise a pattern that alternates between actualtouch points and phantom touch points.